home *** CD-ROM | disk | FTP | other *** search
- UNIT DPMI; { DPMI routines, Last Updated Aug 7/93 }
- { Copyright (C) 1993, Greg Estabrooks }
- INTERFACE
- {***********************************************************************}
- VAR
- DPMIControl :POINTER;
- ParNeeded :WORD;
-
- FUNCTION DPMI_Installed :BOOLEAN;
- { Routine to Determine whether a DPMI API is }
- { installed. If it is installed it loads the }
- { address of the API into DPMIControl for later }
- { program use. Loads ParaNeeded with paragraphs }
- { needed for Host data area. }
-
- FUNCTION DPMIControlAdr :POINTER;
- { This routine returns a pointer to the DPMI }
- { control. }
-
- FUNCTION DPMIVer :WORD;
- { This routine returns the Version of the DPMI }
-
- FUNCTION Processor :BYTE;
- { Routine to return processor type as returned }
- { by the DPMI API. }
-
- {***********************************************************************}
- IMPLEMENTATION
-
- FUNCTION DPMI_Installed :BOOLEAN; ASSEMBLER;
- { Routine to Determine whether a DPMI API is }
- { installed. If it is installed it loads the }
- { address of the API into DPMIControl for later }
- { program use. Loads ParaNeeded with paragraphs }
- { needed for Host data area. }
- ASM
- Mov AX,$1687 { Function to check for DPMI. }
- Int $2F { Call Int 2Fh. }
- Cmp AX,0 { Compare Result to 0. }
- Je @Installed { If its equal jump to Installed. }
- Mov AL,0 { Else return FALSE. }
- Jmp @Exit { Jump to end of routine. }
-
- @Installed:
- Mov DPMIControl.WORD,DI { Load pointer ES:DI into DPMIControl. }
- Mov DPMIControl+2.WORD,ES
- Mov ParNeeded,SI { Load Paragraphs needed into ParNeeded.}
- Mov AL,1 { Set true flag. }
-
- @Exit:
- END;{DPMI_Installed}
-
- FUNCTION DPMIControlAdr :POINTER; ASSEMBLER;
- { This routine returns a pointer to the DPMI }
- { control. }
- ASM
- Mov AX,$1687 { Function to return point to API. }
- Int $2F { Call Int 2Fh. }
- Mov DX,ES { Pointer info is returned in ES:DI. }
- Mov AX,DI
- END;{DPMIControlAdr}
-
- FUNCTION DPMIVer :WORD; ASSEMBLER;
- { This routine returns the Version of the DPMI }
- ASM
- Mov AX,$1687 { Function to get version of DPMI API. }
- Int $2F { Call int 2Fh. }
- Mov AX,DX { Version is returned in DX. }
- END;{DPMIVer}
-
- FUNCTION Processor :BYTE; ASSEMBLER;
- { Routine to return processor type as returned }
- { by the DPMI API. }
- ASM
- Mov AX,$1687 { Function to get info from DPMI. }
- Int $2F { Call Int 2Fh. }
- Mov AL,CL { Processor type returned in CL. }
- END;{Processor}
-
- BEGIN
- END.